package com.bubblegumproject.ogo.action;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;

/**
 * Annotation for naming {@link com.bubblegumproject.ogo.action.SignalAction} parameters.
 *
 * TODO: We must find a way to enforce this contract. If an ActionHandler method takes a SignalAction then its single
 * parameter MUST have a @Signal annotation
 *
 * @author Azubuko Obele (buko.obele@gmail.com)
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface Signal {

    public String value();
    
}
